package com.example.controller;

import com.example.common.Result;
import com.example.common.enums.RoleEnum;
import com.example.entity.Account;
import com.example.entity.Admin;
import com.example.sevice.AdminService;
import jakarta.annotation.Resource;
import org.springframework.web.bind.annotation.*;

@RestController
public class WebController {

    @Resource
    private AdminService adminService;

    /**
     * 默认请求接口 - 用来验证后端有没有启动成功
     */
    @GetMapping("/")
    public Result hello() {
        return Result.success();
    }

    /**
     * 登录
     */
    @PostMapping("/login")
    public Result login(@RequestBody Account account) { //Account是通用的角色的基类
        Account loginAccount = null;
        if (RoleEnum.ADMIN.name().equals(account.getRole())) { //只有管理员角色登录的时候才会调用adminService
            loginAccount = adminService.login(account); // todo 笔记：Account是Admin的父类，可以接收Admin中所有属性的信息
        }
        return Result.success(loginAccount);
    }

    /**
     * 注册 --- 根据具体的项目不同，需注册的用户角色不同
     */
    @PostMapping("/register")
    public Result register() {
        return Result.success();
    }

    /**
     * 修改密码
     */
    @PutMapping("/updatePassword")
    public Result updatePassword(@RequestBody Account account) {
        if (RoleEnum.ADMIN.name().equals(account.getRole())) { //不同的角色修改密码的逻辑不一样
            adminService.updatePassword(account);
        }
        return Result.success();
    }
}
